Spring Boot官宣:正式弃用 Java 8,最低要求 Java 17!怎么办?
2022年1月20日,Spring官方发布了Spring Boot 3.0.0的第一个里程碑版本M1。
下面一起来来看看Spring Boot 3.0.0 M1版本都有哪些重大变化:
Java基线从 Java 8 提升到了 Java 17
这个在最早的Spring Boot 3相关预告中就已经知道了,Java 17将成为未来的主流版本。那么问题来了,大家都把Java 17的升级提上日程了吗?
从Java EE APIs 到 Jakarta EE
Spring Boot 3开始,所有的Java EE Api都需要迁移到Jakarta EE上来。
大部分用户需要修改import相关API的时候,要用jakarta替换javax。比如:原来引入javax.servlet.Filter的地方,需要替换为jakarta.servlet.Filter。
但还有一些依赖Java EE API的第三方库,目前还没有得到很好的支持,所以在Spring Boot 3中暂时会先移除这类组件的支持(比如:EhCache 3、Infinispan、Jolokia、Pooled JMS等)。
所以,目前的M1版本相较2.x版本来说,会有一些特性的缺失。当然大多数应该还只是暂时的,Spring Boot官方会等这些第三方库发布Jakarta兼容库之后再重新引入。
相关支持将被移除
下面这些功能的支持被移除了,相较上一个SNAPSHOT版本增加了Hazelcast 3
Apache ActiveMQ Atomikos EhCache 2 Hazelcast 3
依赖升级
相关Spring项目的依赖版本:
Micrometer 2.0.0-M1 Spring AMQP 3.0.0-M1 Spring Batch 5.0.0-M1 Spring Data 2022.0.0-M1 Spring Framework 6.0.0-M2 Spring Integration 6.0.0-M1 Spring HATEOAS 2.0.0-M1 Spring Kafka 3.0.0-M1 Spring LDAP 3.0.0-M1 Spring REST Docs 3.0.0-M1 Spring Security 6.0.0-M1 Spring Session 2022.0.0-M1 Spring Web Services 4.0.0-M1
第三方库的依赖版本:
Artemis 2.20.0 Hazelcast 5.0 Hibernate Validator 7.0 Jakarta Activation 2.0 Jakarta Annotation 2.0 Jakarta JMS 3.0 Jakarta JSON 2.0 Jakarta JSON Bind 3.0 Jakarta Mail 2.0 Jakarta Persistence 3.0 Jakarta Servlet 5.0 Jakarta Servlet JSP JSTL 2.0 Jakarta Transaction 2.0 Jakarta Validation 3.0 Jakarta WebSocket 2.0 Jakarta WS RS 3.0 Jakarta XML Bind 3.0 Jakarta XML Soap 2.0 Jetty 11 jOOQ 3.16 Tomcat 10
未来计划
后续Spring Boot团队将每两个月发布一个新的里程碑版本,所以M2版本预计将在3月24日发布,而GA版本将在11月下旬与大家见面。
参考资料
https://spring.io/blog/2022/01/20/spring-boot-3-0-0-m1-is-now-available
相关阅读:
拒绝 kill -9 暴力停止,优雅停止 SpringCloud 服务